package com.pi.base.service;

import java.util.List;

import com.pi.base.common.BasePage;
import com.pi.base.common.BaseResult;
import com.pi.base.entity.SysParameter;
import com.pi.base.entity.SysParameterExample;

public interface ISysParameterService {
	
	/**
	 * 根据参数code查询（多项）（level2)
	 * @param code
	 * @return
	 * @throws Exception
	 */
	public List<SysParameter> getParamListByCode(String code) throws Exception;
	
	/**
	 * 根据ID查询信息
	 * @param parameterId
	 * @return
	 * @throws Exception
	 */
	public SysParameter getParameterById(int parameterId) throws Exception;
	
	/**
	 * 获取系统参数，（单项）（type1)
	 * @param code
	 * @return
	 * @throws Exception
	 */
	public SysParameter getParameterByCode(String code) throws Exception;
	
	/**
	 * 根据code,value查询（level2)的参数值
	 * @param code
	 * @param value
	 * @return
	 * @throws Exception
	 */
	public SysParameter getParamByCodeAndValue(String code, Object value) throws Exception ;
	
	/**
	 * 查询系统参数
	 * @param example
	 * @param startRows
	 * @param rows
	 * @return
	 * @throws Exception
	 */
	public BasePage<SysParameter> getParameterListByExample(SysParameterExample example,int startPage,int rows) throws Exception;
	
	public void insertSysParamter(SysParameter newParameter) throws Exception;
	
 	public void updateSysParamter(SysParameter newParameter) throws Exception;
	
 	/**
	 * 新增系统参数<br>
	 * 1.名称不能重复<br>
	 * 2.父参数下值不能相同
	 * @param newParameter
	 * @return
	 * @throws Exception
	 */
	public BaseResult insertSubSysParamter(SysParameter newParameter) throws Exception;
	
	/**
	 * 修改系统参数<br>
	 * 1.名称不能重复<br>
	 * 2.父参数下值不能相同
	 * @param newParameter
	 * @return
	 * @throws Exception
	 */
	public BaseResult updateSubSysParamter(SysParameter newParameter) throws Exception;
	
	/**
	 * 删除系统参数
	 * @param paramterIds
	 * @return
	 * @throws Exception
	 */
	public void deleteSysParamters(String paramterIds) throws Exception;
	
}
